/*
    This file is part of libcloak.

    libcloak is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    libcloak is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with libcloak.  If not, see <http://www.gnu.org/licenses/>.

*/



#ifdef HAVE_XML
#include "../include/XmlResource.h"
#include <iostream>
namespace Cloak
{
	using namespace std;
	XmlResource::XmlResource(const string &name) : root(NULL)
	{
		this->name = name;
		
		const char* buffer;
		buffer = loadResource(this->name);
		
		if(buffer == NULL)
			loaded = false;
		
		root = new TiXmlDocument();
		root->Parse(buffer);
		delete buffer;
		
		if(root->Error())
		{
			clean();
			loaded = false;
		}
			
		loaded = true;
	}
	
	XmlResource::XmlResource(XmlResource &old) : Resource(old)
	{
		this->root = new TiXmlDocument(*old.root);
	}
	
	XmlResource::~XmlResource() 
	{
		clean();
	}
	
	
	void XmlResource::clean()
	{
		if(root != NULL)
		{
			delete root;
			root = NULL;
		}
	}
	
	const TiXmlDocument* XmlResource::getXml()
	{
		return root;
	}
	
}
#endif

